This invention relates to the fields of multi-processor architectures and arrangements suitable for distributed and parallel processing of data such as signal and image processing.
Not applicable.
This invention was not developed in conjunction with any Federally sponsored contract.
There are many applications of image and signal processing which require more microprocessing bandwidth than is available in a single processor at any given time. As microprocessors are improved and their operating speeds increase, so too are the application demands continuing to meet or exceed the ability of a single processor. For example, there are certain size, weight and power requirements to be met by processor modules or cards which are deployed in military, medical and commercial end-use applications, such as a line replaceable unit (LRU) for use in a signal processing system onboard a military aircraft. These requirements typically limit a module or card to a maximum number of microprocessors and support circuits which may be incorporated onto the module due to the power consumption and physical packaging dimensions of the available microprocessors and their support circuits (memories, power regulators, bus interfaces, etc.).
As such, a given module design or configuration with a given number of processors operating at a certain execution speed will determine the total bandwidth and processing capability of the module for parallel and distributed processing applications such as image or signal processing. Thus, as a matter of practicality, it is determined whether a particular application can be ported to a specific module based upon these parameters. Any applications which cannot be successfully be ported to the module, usually due to requiring a higher processing bandwidth level than available on the module, are implemented elsewhere such as on mini-super computers.
As processor execution rates are increased, microprocessing system component integration is improved, and memory densities are improved, each successive multi-processor module is redesigned to incorporate a similar number of improved processors and support circuits. So, for example, a doubling of a processor speed may lead to the doubling of the processing bandwidth available on a particular module. This typically allows twice as many xe2x80x9ccopiesxe2x80x9d or instances of applications to be run on the new module than were previously executable by the older, lower bandwidth module. Further, the increase in processing bandwidth may allow a single module to run applications which were previously too demanding to be handled by a single, lower bandwidth module.
The architectural challenges of maximizing processor utilization, communication and organization on a multi-processor module remains constant, even though processor and their associated circuits and devices tend to increase in capability dramatically from year to year.
For many years, this led the military to design specialized multi-processor modules which were optimized for a particular application or class of applications, such as radar signal processing, infrared sensor image processing, or communications signal decoding. A module designed for one class of applications, such as a radar signal processing module, may not be suitable for use in another application, such as signal decoding, due to architecture optimizations for the one application which are detrimental to other applications.
In recent years, the military has adopted an approach of specifying and purchasing computing modules and platforms which are more general purpose in nature and useful for a wider array of applications in order to reduce the number of unique units being purchased. Under this approach, known as xe2x80x9cCommercial-Off-The-Shelfxe2x80x9d (COTS), the military may specify certain software applications to be developed or ported to these common module designs, thereby reducing their lifecycle costs of ownership of the module.
This has given rise to a new market within the military hardware suppliers industry, causing competition to develop and offer improved generalized multi-processor architectures which are capable of hosting a wide range of software applications. In order to develop an effective general hardware architecture for a multi-processor board for multiple applications, one first examines the common needs or nature of the array of applications. Most of these types of applications work on two-dimensional data. For example, in one application, the source data may represent a 2-D radar image, and in another application, it may represent 2-D magnetic resonance imaging. Thus, it is common to break the data set into portions for processing by each microprocessor. Take an image which is represented by an array of data consisting of 128 rows and 128 columns of samples. When a feature recognition application is ported to a quad processor module, each processor may be first assigned to process 32 rows of data, and then to process 32 columns of data. In signal processing parlance this is known as xe2x80x9ccorner turningxe2x80x9d. Comer turning is a characteristic of many algorithms and applications, and therefore is a common issue to be addressed in the interprocessor communications and memory arrangements for multi-processor boards and modules.
One microprocessor which has found widespread acceptance in the COTS market is the Motorola PowerPC [TM]. Available modules may contain one, two, or even four PowerPC processors and support circuits. The four-processor modules, or xe2x80x9cquad PowerPCxe2x80x9d modules, are of particular interest to many military clients as they represent a maximum processing bandwidth capability in a single module. There are three fundamentally different quad Power PC board or module architectures on the market, which are are illustrated in FIGS. 1 through 3. FIG. 1 illustrates an architecture known as the xe2x80x9cdistributed memory architecturexe2x80x9d, while both FIGS. 2 and 3 represent xe2x80x9cdual memoryxe2x80x9d architectures. These architectures, though, could be employed well with other types and models of processors, inheriting the strengths and weaknesses of each architecture somewhat independently of the processor chosen for the module.
One advantage of distributed memory architectures as shown in FIG. 1 is that input data received at a central crossbar (15) can be xe2x80x9cfarmed outxe2x80x9d via local crossbars (100 and 101) to multiple processors xe2x80x9ccoresxe2x80x9d (16, 17, 18 and 19) that perform the processing of the data in parallel and simultaneously. Quad PowerPC cards such as this are offered by companies such as CSP Inc., Mercury Computer Systems Inc., and Sky Computers Inc.
For example, during the first phase of processing a hypothetical two-dimensional (2-D) data set of 128 rows by 128 columns shown in TABLE 1 on a distributed memory dual processor card, a first set of 32 rows (rows 0-31) of data may be sent to a first processor core (16), a second set of 32 rows (rows 32-63) of data would be sent to a second processor core (17), a third set of 32 rows (rows 64 to 95) of data to the third processor core (18), and the fourth set of 32 rows (rows 96 to 127) of data to the fourth processor core (19). Then, in preparation for a second phase of processing data by columns, a corner turning operation is performed in which the first processor core would receive data for the first 32 columns, the second processor core would receive the data for the second 32 columns, and so forth.
Regardless of the type of bus used to interconnect the processor cores, high speed parallel or serial, this architecture requires movement of significant data during a corner turning operation during which data that was initially needed for row processing by one processor core is transferred to another processor core for column processing. As such, the distributed memory architecture has a disadvantage with respect to efficiency of performing corner turning. Corner turning on multi-processor modules of this architecture type consumes processing bandwidth to move the data from one processor core to another, bandwidth which cannot be used for other computations such as processing the data to extract features or performing filtering algorithms.
Turning to the second architecture type commonly available in the COTS market, the advantage of shared memory architectures is that all data resides in one central memory, as illustrated in FIG. 2. COTS modules having architectures such as this are commonly available from Thales Computers Corp., DNA Computing Solutions Inc., and Synergy Microsystems. In this example, four processor cores (21, 22, 23, and 24) may operate on data stored in a global memory (26) such as via bridges (25) between processor-specific buses to a standard bus (PowerPC bus to Peripheral Component Interconnect xe2x80x9cPCIxe2x80x9d bus in this example).
The bridges (25) are responsible for arbitrating simultaneous attempts to access the global memory (26) from the processor cores. Additionally, common modules available today may provide expansion slots or daughterboard connectors such as PCI Mezzanine Connector (PMC) sites (27 and 28), which may also provide data access to the global memory (26). This architecture allows for xe2x80x9cequal accessxe2x80x9d to the global data store, including the processor(s) which may be present on the expansion sites, and thus eases the decisions made during porting of large applications to specific processor cores because each xe2x80x9cjobxe2x80x9d to be ported runs equally well on any of the processor cores.
Due to the centralized memory in this architecture, corner turning can be performed by addressing the shared memory (26) with a pointer that increments by one when processing row data, and increments by the number of data samples in a row when processing column data. This avoids the need to ship or move data from one processor core to another following initial row-data processing, and thereby eliminates wasted processor cycles moving that data.
However, the disadvantage of this arrangement is that all four processors must access data from the same shared memory, which often leads to a xe2x80x9cmemory bottleneckxe2x80x9d that slows execution times due to some processor core requests being arbitrated, e.g. forced to wait, while another processor accesses the global memory. Thus, what was gained in eliminating the wasted processor cycles for moving data from core to core may be lost to wait states or polling loops caused by arbitration logic for accesses to shared memory.
Turning to the third architecture type commonly found in modules available on the COTS market, dual memory architectures are designed to utilize the best features of distributed and shared memory architectures, to facilitate fast processing and reduce corner turning overhead. As shown in FIG. 3, both memory schemes are adopted, providing the module with a global memory (34) accessible by all processor cores, and local memory (31, 38) for each processor or subset of processor cores. This addresses the arbitration losses in accessing a single shared global memory by allowing processor core to move or copy data which is needed for intense accesses from global memory to local memory. Some data which is not so intensely needed by a processor is left in the global memory, which reduces the overhead costs associated with corner turning. D 4 Systems offers a module having an architecture such as this.
In some respects, the architecture of FIG. 2 can be viewed as a dual memory architecture as well, and not strictly a shared memory architecture, as the local cache memory for each processor core may perform the functions of local memory shown in FIG. 1.
Most modem processors have increased their internal clock rate and computational capabilities per clock (or per cycle) faster than their ability to accept the data they need to process. In other words, most modern processors can now process data faster than they can read or write the data to be processed due to I/O speed limitations on busses and memory devices.
As a result, xe2x80x9coperations/secondxe2x80x9d is no longer the chief concern when determining whether a particular processor or processor core is capable of executing a particular application. This concern has been replaced by data movement bandwidth as the driving consideration in measuring the performance of single processors, processor cores and arrays of processors. TABLE 2 summarizes data movement capabilities of several currently available distributed architecture boards, including the Race++ [TM] from Mercury Computer Systems Inc., the Sky Bolt II [TM] from Sky Computers Inc., and the Myranet 2841 [TM] from CSP Inc.
As can be seen from this comparison, each architecture has strong points and weak points. For example, the Race ++ [TM] and SkyBolt II [TM] architectures have nearly twice the performance for processor to local memory data movement than for core to core or module I/O data movement. For applications which utilize local memory heavily and do not need intense core-to-core movement or board I/O data flow, these may be adequate. But, this imbalance among data movement paths can eliminate these two boards from candidacy for many applications. On the contrary, the Myranet [TM] board has a good balance between the data movement paths, but at the cost of efficient local memory accesses. For example, the Myranet [TM] board appears to be approximately 50% faster transferring data in and out of the module and between cores than the SkyBolt II [TM], but 28% slower accessing local memory.
Therefore, there is a need in the art for a multiprocessor architecture for distributed and parallel processing of data which provides optimal data transfer performance between processors and their local memories, from processor to processor, and from processors to module inputs and outputs. In particular, there is a need in the art for this new arrangement to provide maximum performance when accessing local memory as well as nominal performance across other data transfer paths. Further, there is a need in the art for this new architecture to be useful and advantageous for realization with any high speed microprocessor family or combination of microprocessor models, and especially those which are commonly used for control or signal processing applications and which exhibit I/O data transfer constraints relative to processing bandwidth.
The new module and architecture provides a quad-processor arrangement having 6 communications paths, one direct communication path between each of the two possible pairs of processors. Each processor is provided with a local memory which can be accessed by the local processor as well as by the other processors via the communications paths. This allows for efficient data movement from one processor""s local memory to another processor""s local memory, such as commonly done during signal processing corner turning operations. The communications paths are controlled and interfaced to the processors through field programmable logic, which allows the board to be configured both statically and dynamically to optimize the data transfer characteristics of the module to match the requirements of the application software. In an additional advantage of the module architecture, the programmable logic may be configured so that the module emulates other existing board architectures in order to support legacy applications.